package com.cskaoyan.controller;

import com.cskaoyan.bean.BaseRespVo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

/**
 * MultipartFile的接收
 * @author stone
 * @date 2022/09/02 10:26
 */
@RestController
@RequestMapping("upload")
public class UploadController {

    //通过这个实例可以获得接收的文件的信息
    //另外通过这个实例提供的方法，也可以直接将文件保存到本地
    @RequestMapping("file")
    public BaseRespVo uploadFile(MultipartFile myfile) throws IOException {
        long size = myfile.getSize(); // 文件大小
        String contentType = myfile.getContentType(); // 正文类型 image/jpeg → 可以通过这个信息判断你上传的文件类型
        String originalFilename = myfile.getOriginalFilename(); // 原始的文件名 → 也可以通过这个值获得文件名的后缀，比如获得jpg
        // 将文件保存到本地
        // 文件名可以生成随机值,比如UUID，因为上传相同的文件名的文件，会导致覆盖
        File file = new File("d:/tmp/", originalFilename);// 保存文件到指定位置，按照指定的名称命名
        myfile.transferTo(file);
        return BaseRespVo.ok();
    }

    @RequestMapping("files")
    public BaseRespVo uploadFiles(MultipartFile[] myfiles) throws IOException {
        for (MultipartFile myfile : myfiles) {
            String originalFilename = myfile.getOriginalFilename(); // 原始的文件名 → 也可以通过这个值获得文件名的后缀，比如获得jpg
            // 将文件保存到本地
            File file = new File("d:/tmp/", originalFilename);// 保存文件到指定位置，按照指定的名称命名
            myfile.transferTo(file);
        }
        return BaseRespVo.ok();
    }
}
